package com.flyan.game.motafx.core.event;

import cn.hutool.json.JSONObject;
import javafx.util.Duration;

/**
 * 事件
 *
 * @author flyan
 * @version 1.0
 * @email flyan_by_chenu@sina.com
 * @since 2025/2/10
 */
public interface Event {

    /**
     * @return 事件类型
     */
    String type();

    /**
     * @return 事件持续时间
     */
    default Duration duration() {
        return Duration.ZERO;
    }

    /**
     * @return 事件属性
     */
    JSONObject properties();

    /**
     * 事件发生
     */
    void occur();

}
